// --------------------- 添加响应拦截器 --------------------
axios.interceptors.response.use(
  response => {
    // 响应成功（响应状态码 2xx 和 3xx），进这里
    // 这里针对服务器响应的友情提示，比如账号密码错误、用户名已被占用等，统一提示
    let { status, message } = response.data;
    if (status === 1) layer.msg(message);
    return response;
  }, 
  error => {
    // 响应报错（响应状态码 4xx 和 5xx），进这里
    // 比如提交的参数格式有误，服务器会响应400状态码
    // 比如身份认证错误，服务器响应401
    if (error.response) {
      let {data: {status, message}} = error.response;
      // token没问题，其他方面的问题，比如数据格式不对等
      layer.msg(message)
    }
  	return Promise.reject(error);
	}
)


// --------------------- 切换登录和注册的盒子 --------------------
//点击登录的盒子里面的a标签,让注册的盒子显示(注册的盒子显示了,就会把登录的盒子遮住了)
$('.login a').click(function () {
  $('.register').show();
});

// 点击注册的盒子里面的a标签.让注册的盒子隐藏
$('.register a').click(function () {
  $('.register').hide();
});


// --------------------- 登录功能 --------------------
// 当表单提交的时候,要阻止默认行为,收集账号密码,ajax提交
$('.login form').on('submit',function(e){
  e.preventDefault();
  let data = $(this).serialize();
  console.log(data);
  //这里ajax提交用axios来代替
  // axios.post(url,请求体,).then(函数);
  axios.post('http://www.itcbc.com:8080/api/login',data).then(res=>{
    console.log(res);
    //结构赋值获取相应结果中的 status/message/token
    let {status,message,token} = res.data;
    if(status ===0){
      // 保存token到本地存储中
      localStorage.setItem('token',token)
      // 提示一下
      layer.msg(message,{time:1500},()=>{
      // 跳转到index.html
      location.href = './index.html'
      });
    }
  })
})


// --------------------- 注册功能 --------------------
// 当表单提交的时候,要阻止默认行为,收集账号密码,ajax提交
$('.register form').on('submit',function(e){
  e.preventDefault();
  let data = $(this).serialize();
  axios.post('http://www.itcbc.com:8080/api/reguser',data).then(res =>{
    let {status,message} = res.data;
    if(status ===0){
      // 提示注册成功
      layer.msg(message)
      // 注册页面清空
      $('.register form')[0].reset()
      // 让注册的盒子隐藏
      $('.register').hide()
    }
  })
})


// -------------------------表单验证---------------------------
// 自定义验证规则
// 使用layui的内置模块,使用之前,必须先加载模块
// 加载语法, let xx = layui.模块名;
let  form = layui.form;
console.log(form);
form.verify({
  // 键(验证规则):值(怎样验证)
  // len:['正则表达式','验证不通过时的提示']
  len:[/^\S{6,12}$/,'长度6~12为且不能有空格'],
  
  // 函数形式,函数的形参表示,使用该验证规则的输入框的值
  // same:function (val) {return '验证不通过时的提示'}
  same:function (val) {
    // 获取第一次输入密码的值
    let pwd = $('.pwd').val();
    // 判断两次密码是否一致
    if(val !== pwd) return '两次密码不一致'
  }
})